//
//  HLTabBar.swift
//  HL-sinaWeiBo
//
//  Created by 任翰林 on 16/5/11.
//  Copyright © 2016年 任翰林. All rights reserved.
//

import UIKit


//这里是协议，继承自NSObjectProtocol，因为我们需要用weak去修饰
protocol HLTabBarDelagate:NSObjectProtocol {

//    这里定义点击撰写按钮会动啊的方法
func didSelectedComposeButton()


}

class HLTabBar: UITabBar {

//    闭包
    var composeButtonClousre: (() -> ())?
    
    
    //  MARK: - 创建添加“加号”按钮 -
//懒加载创建按钮
    private lazy var button: UIButton = {
    
        let button = UIButton()
//        button.delete(<#T##sender: AnyObject?##AnyObject?#>)
//        添加点击事件
        button .addTarget(self, action: "composeButtonClick", forControlEvents: .TouchUpInside)
        
//      设置背景图片
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: .Normal)
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: .Highlighted)
//      设置图片
        button.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: .Normal)
        button.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: .Highlighted)
        
        button.sizeToFit()
        return button
        
    }()
//
    //  MARK: - 重写init方法 -
    override init(frame: CGRect) {
        
        super.init(frame: frame)
        
        setUpButton()
    }
    
    //  MARK: - 加号按钮的点击事件 -
    func composeButtonClick() {
    
    print("composeButtonClick")
//        这里是闭包方法
    composeButtonClousre?()
    
//        这里是代理方法
//        HLTabBarDelagate?.didSelectedComposeButton()
        
        
    }
    
    
    
    //  MARK: - 设置frame -
    override func layoutSubviews() {
        super.layoutSubviews()
        button.center.x = frame.size.width * 0.5
        button.center.y = frame.size.height * 0.5
        
        
//        设置字视图的宽度
        let itemWidth = frame.size.width / 5
        var index = 0
//        便利字视图
        for childView in subviews {
        
        print(childView)
            
            if childView .isKindOfClass(NSClassFromString("UITabBarButton")!) {
            
            childView.frame.size.width = itemWidth
            
            childView.frame.origin.x = CGFloat(index) * itemWidth
            index++
            
            if index == 2 {
            
                index++
            }
            
           }
            
        }
        
    }
    
    
    
    //  MARK: - 调用方法 -
    private func setUpButton() {
    
    addSubview(button)
    
    }
    
//    使用xib和sb创建视图的时候会执行
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    
}
